package com.example.activitylife;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

    // **
    // 在Activity生命周期开始时被调用
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = (Button) this.findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent t1 = new Intent();
                t1.setClass(MainActivity.this, SecActivity.class);
                MainActivity.this.startActivity(t1);
            }
        });

        Log.e("MainActivity", "---------------->onCreate");
    }

    // **
    // 当activity从停止状态重新启动时调用
    public void onRestart() {
        super.onRestart();
        Log.e("MainActivity", "---------------->onRestart");
    }

    // **
    // 可见时
    // 当activity对用户即将可见的时候调用。
    public void onStart() {
        super.onStart();
        Log.e("MainActivity", "---------------->onStart");
    }

    // **
    // 获取用户焦点
    // 当activity将要与用户交互时调用此方法，此时activity在activity栈的栈顶，用户输入已经 可以传递给它
    public void onResume() {
        super.onResume();
        Log.e("MainActivity", "---------------->onResume");
    }

    // **
    // 主要用于保存当前数据，
    // 当系统要启动一个其他的activity时调用（其他的activity显示之前），
    // 这个方法被用来提交那些持久数据的改变、停止动画、和其他占用
    // CPU资源的东西。由于下一个activity在这个方法返回之前不会resumed
    // ，所以实现这个方法时代码执行要尽可能快。
    public void onPause() {
        super.onPause();
        Log.e("MainActivity", "---------------->onPause");
    }

    // **
    // 不可见，则调用
    // 当另外一个activity恢复并遮盖住此activity,导致其对用户不再可见时调用。一个新activity启动、其它activity被切换至前景、当前activity被销毁时都会发生这种场景。
    public void onStop() {
        super.onStop();
        Log.e("MainActivity", "---------------->onStop");
    }

    // **
    // finish
    // 回收
    // 在activity被销毁前所调用的最后一个方法，当进程终止时会出现这种情况
    public void onDestroy() {
        super.onDestroy();
        Log.e("MainActivity", "---------------->onDestroy");
    }

    // Activity即将移出栈顶保留UI状态时调用此方法
    public void onSaveInstanceState(Bundle savedInstanceState) {
        super.onSaveInstanceState(savedInstanceState);
        Log.e("MainActivity", "---------------->onSaveInstanceState");
    }

    // onCreate完成后被调用，用来回复UI状态
    public void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        Log.e("MainActivity", "---------------->onRestoreInstanceState");
    }

}
